<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<body>

<h2>Hibernate O/RM JavaDocs (aggregated)</h2>

Hibernate provides both<ul>
    <li>
        a native API comprised centrally around {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}
    </li>
    <li>
        an implementation of the Java Persistence API (JPA)
        specification comprised centrally around {@link org.hibernate.jpa.internal.EntityManagerFactoryImpl} and
        {@link org.hibernate.jpa.internal.EntityManagerImpl} (the Hibernate implementations of
        {@link javax.persistence.EntityManager} and {@link javax.persistence.EntityManagerFactory}, respectively).
        See the latest <a href="http://jcp.org/en/jsr/detail?id=338">JPA JSR</a> for details.
    </li>
</ul>
<hr/>

<h3>Native API</h3>
In addition to SessionFactory and Session, applications using the native API will often utilize the following
interfaces:<ul>
    <li>{@link org.hibernate.cfg.Configuration}</li>
    <li>{@link org.hibernate.Transaction}</li>
    <li>{@link org.hibernate.Query}</li>
    <li>{@link org.hibernate.Criteria}</li>
    <li>{@link org.hibernate.criterion.Projection}</li>
    <li>{@link org.hibernate.criterion.Projections}</li>
    <li>{@link org.hibernate.criterion.Criterion}</li>
    <li>{@link org.hibernate.criterion.Restrictions}</li>
    <li>{@link org.hibernate.criterion.Order}</li>
    <li>{@link org.hibernate.criterion.Example}</li>
</ul>
These interfaces are fully intended to be exposed to application code.
<p></p>
<hr/>

<h3>JPA</h3>
The JPA interfaces are all defined by the JPA specification.  For details see {@link javax.persistence}
<p></p>
<hr/>

<h3>Package Groups</h3>
This documentation groups packages into the following 3 categories:<ul>
    <li>
        <strong>API</strong> - classes to which application code will generally bind directly.
    </li>
    <li>
        <strong>SPI</strong> - classes to which application developers or integrators will commonly bind directly in
        order to develop extensions to Hibernate, or to alter its behavior in some way.
    </li>
    <li>
        <strong>Internal</strong> - classes which are intended only to be used by Hibernate.  Use of these classes
        outside of Hibernate specific use cases is not supported.  Moreover, these contracts can change frequently
        between releases whereas APIs and SPIs are more stable.
    </li>
</ul>
Additionally, we highlight a 4th category <strong>Testing Support</strong> which is a set of classes useful for building
Hibernate test cases.
<p></p>
<hr/>

Complete Hibernate documentation may be found online at <a href="http://docs.jboss.org/hibernate/">http://docs.jboss.org/hibernate/</a>

</body>